package com.macro.mall.portal.service.impl;


import com.macro.mall.mapper.CurCourseTypeMapper;
import com.macro.mall.model.CurCourseType;
import com.macro.mall.portal.service.CurCourseTypeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Slf4j
@Service
public class CurCourseTypeServiceImpl implements CurCourseTypeService {

    @Autowired
    private CurCourseTypeMapper curCourseTypeMapper;

    /**
    * 保存
    * 所有字段全都保存
    * @param curCourseType
    * @return 保存后的对象包括ID
    */
    @Override
    public int saveCurCourseType(CurCourseType curCourseType){
        /**if(curCourseType.getId()==null||curCourseType.getId()==""){
        *      String uuid =UUID.randomUUID().toString().replace("-", "").trim();
        *     curCourseType.setId(uuid);
        */
        return curCourseTypeMapper.saveCurCourseType(curCourseType);
    }

    /**
    * 保存
    * 判断为空保存
    * @param curCourseType
    * @return 保存后的对象包括ID
    */
    @Override
    public int saveCurCourseTypeSelective(CurCourseType curCourseType){
    /**if(curCourseType.getId()==null||curCourseType.getId()==""){
      *      String uuid =UUID.randomUUID().toString().replace("-", "").trim();
        *     curCourseType.setId(uuid);
        */
        return curCourseTypeMapper.saveCurCourseTypeSelective(curCourseType);
    }

    /**
    * 根据ID删除
    * @param id 主键ID
    * @return 删除记录数
    */
    @Override
    public int deleteCurCourseTypeById(String id){

        return curCourseTypeMapper.deleteCurCourseTypeById(id);
    }

    /**
    * 更新
    * 更新所有字段
    * @param curCourseType
    * @return 保存后的对象包括ID
    */
    @Override
    public int updateCurCourseType(CurCourseType curCourseType){

        return curCourseTypeMapper.updateCurCourseType(curCourseType);
    }
    /**
    * 更新
    * 判断为空保存更新字段
    * @param curCourseType
    * @return 保存后的对象包括ID
    */
    @Override
    public int updateCurCourseTypeSelective (CurCourseType curCourseType){

        return curCourseTypeMapper.updateCurCourseTypeSelective(curCourseType);
    }

    /**
    * 按ID查询
    * @parm id 主键ID
    * @return CurCourseType
    */
    @Override
    public CurCourseType selectCurCourseTypeById(String id){

        return curCourseTypeMapper.selectCurCourseTypeById(id);
    }


    /**
    * 按条件查询全部的
    * @param curCourseType  查询条件
    * @return  List<CurCourseType>
    */
    @Override
    public List<CurCourseType> selectAllByCurCourseType (CurCourseType curCourseType){
        try {
            return curCourseTypeMapper.selectAllByCurCourseType(curCourseType);
        } catch (Exception e) {
            log.error("",e);
            return new ArrayList<>();
        }
    }

    @Override
    public List<CurCourseType> selectAllByParentId(CurCourseType curCourseType) {
        try {
            return curCourseTypeMapper.selectAllByParentId(curCourseType);
        } catch (Exception e) {
            log.error("",e);
            return new ArrayList<>();
        }
    }


}